﻿Public Class User
    Public dispFlg As String '入力画面の表示タイプの判定フラグ
    Public userID As String 'ユーザID
    Public userName As String 'ユーザ名
    Public password As String 'パスワード
    Public repassword As String 'パスワード（再入力）
    Public userType As String '権限
    'アクション名を取得
    Public Function getActionName() As String
        Select Case dispFlg
            Case "I"
                Return "登録"
            Case "U"
                Return "更新"
            Case "D"
                Return "削除"
        End Select
        Return ""
    End Function
    '権限名をゲット関数
    Public Function getUserTypeName() As String
        Select Case Me.userType
            Case "A"
                Return "管理"
            Case "B"
                Return "購買"
            Case "C"
                Return "開発"
        End Select
        Return ""
    End Function
    'DBで定義された権限コードをゲット関数
    Public Shared Function toUserTypeCode(ByVal userType As String) As String
        Select Case userType
            Case "管理"
                Return "A"
            Case "購買"
                Return "B"
            Case "開発"
                Return "C"
        End Select
        Return ""
    End Function
    'ユーザ情報のバリデーション関数
    Public Function validate(ByVal csvFlg As Boolean) As String
        Dim errors As New System.Text.StringBuilder()
        Dim tailStr As String = ""
        If csvFlg = False Then '入力画面から取得データをバリデーションする時はメッセージ項目ごとを改行
            tailStr = System.Environment.NewLine
        End If
        'ユーザIDのチェック
        If String.IsNullOrEmpty(userID.Trim) Then '必須チェック
            errors.Append(MessageCommon.getMessage("ユーザID", My.Resources.E_INPUT_REQUIRED))
            errors.Append(tailStr)
        Else
            If userID.Length > 10 Then '最大長チェック
                errors.Append(MessageCommon.getMessage("ユーザID", 10, My.Resources.E_INPUT_MAXLENGTH))
                errors.Append(tailStr)
            End If
        End If
        'パスワードのチェック
        If String.IsNullOrEmpty(password.Trim) Then '必須チェ九
            errors.Append(MessageCommon.getMessage("パスワード", My.Resources.E_INPUT_REQUIRED))
            errors.Append(tailStr)
        Else
            If password.Length > 10 Then '最大長チェック
                errors.Append(MessageCommon.getMessage("パスワード", 10, My.Resources.E_INPUT_MAXLENGTH))
                errors.Append(tailStr)
            End If
        End If
        'パスワード（再入力）チェック
        If csvFlg = False Then
            If String.IsNullOrEmpty(repassword.Trim) Then '必須チェック
                errors.Append(MessageCommon.getMessage("パスワード（再入力）", My.Resources.E_INPUT_REQUIRED))
                errors.Append(tailStr)
            Else
                If repassword.Length > 10 Then '最大長チェック
                    errors.Append(MessageCommon.getMessage("パスワード（再入力）", 10, My.Resources.E_INPUT_MAXLENGTH))
                    errors.Append(tailStr)
                End If
            End If
        End If
        'ユーザ名のチェック
        If String.IsNullOrEmpty(userName.Trim) Then '必須チェック
            errors.Append(MessageCommon.getMessage("ユーザ名", My.Resources.E_INPUT_REQUIRED))
            errors.Append(tailStr)
        Else
            If userName.Length > 25 Then '最大長チェック
                errors.Append(MessageCommon.getMessage("ユーザ名", 25, My.Resources.E_INPUT_MAXLENGTH))
                errors.Append(tailStr)
            End If
        End If
        '権限のチェック
        If String.IsNullOrEmpty(userType.Trim) Then '必須チェック
            errors.Append(MessageCommon.getMessage("権限", My.Resources.E_INPUT_REQUIRED))
            errors.Append(tailStr)
        Else
            If Not userType.Equals("A") And Not userType.Equals("B") And Not userType.Equals("C") Then '範囲チェック
                errors.Append(MessageCommon.getMessage("権限", My.Resources.E_INPUT_INVALID_FORMAT))
                errors.Append(tailStr)
            End If
        End If
        'パスワード入力の一致性のチェック
        If String.Equals(password, repassword) = False Then
            errors.Append(MessageCommon.getMessage("パスワード", "パスワード（再入力）", My.Resources.E_INPUT_NOT_MATCHED))
            errors.Append(tailStr)
        End If
        Return errors.ToString
    End Function
End Class